package fiuba.algo3.modelo.mapa;

import java.util.ArrayList;
import java.util.Iterator;

import fiuba.algo3.modelo.Posicion;

/** Iterador que devuelve Cruces del mapa. 
 * Empieza por el de mas arriba a la izquierda, y recorre en vertical */
public class IteradorDeMapa implements Iterator<Cruce>{

	private Mapa mapa;
	private ArrayList<Posicion> posiciones;
	private Iterator<Posicion> iterador;
	
	public IteradorDeMapa(Mapa mapa){
		this.mapa = mapa;
		int ancho = mapa.getAncho();
		int alto = mapa.getAlto();
		this.posiciones = new ArrayList<Posicion>(ancho*alto);
		for (int i = 0; i<ancho; i++)
			for (int j = 0; j<alto; j++)
				posiciones.add(new Posicion(i,j));
		this.iterador = posiciones.iterator();
	}
	
	@Override
	public boolean hasNext() {
		return (iterador.hasNext());
	}

	@Override
	public Cruce next() {
		return mapa.getCruceEn(iterador.next());
	}

	@Override
	public void remove() throws UnsupportedOperationException{
		throw new UnsupportedOperationException();		
	}

}
